package com.erp.gather.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 店铺商品排行记录业务对象 erp_seller_store_commodity_rank_statistics
 *
 * @author erp
 * @date 2024-01-03
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ErpSellerStoreCommodityRankStatisticsBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 店铺id
     */
    @NotNull(message = "店铺id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long storeId;

    /**
     * 产品ID
     */
    @NotNull(message = "产品ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long productId;

    /**
     * 时间
     */
    @NotBlank(message = "时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private String timeFrame;

    /**
     * 类别ID
     */
    @NotNull(message = "类别ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long categoryId;

    /**
     * 排名
     */
    @NotNull(message = "排名不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long Rank;

    /**
     * 税款
     */
    @NotNull(message = "税款不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal Taxes;

    /**
     * 商品加购人数
     */
    @NotNull(message = "商品加购人数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long productPurchasingTips;

    /**
     * 访客
     */
    @NotNull(message = "访客不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long visitors;

    /**
     * 已支付的买家
     */
    @NotNull(message = "已支付的买家不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long buyersPaid;

    /**
     * 老买家
     */
    @NotNull(message = "老买家不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long oldBuyer;

    /**
     * 收藏人数
     */
    @NotNull(message = "收藏人数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long wishlists;

    /**
     * 已支付的产品数量
     */
    @NotNull(message = "已支付的产品数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long paidProductNumber;

    /**
     * 点击率
     */
    @NotNull(message = "点击率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal clickRate;

    /**
     * 页面浏览量
     */
    @NotNull(message = "页面浏览量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long pageViews;

    /**
     * 创建的订单GMV
     */
    @NotNull(message = "创建的订单GMV不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal createdOrdersGmv;

    /**
     * 交易金额
     */
    @NotNull(message = "交易金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal transactionAmount;

    /**
     * 平均访客停留时间
     */
    @NotNull(message = "平均访客停留时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal averageVisitorDuration;

    /**
     * 老访客
     */
    @NotNull(message = "老访客不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long oldVisitors;

    /**
     * 新买家
     */
    @NotNull(message = "新买家不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long newBuyer;

    /**
     * 已支付的订单
     */
    @NotNull(message = "已支付的订单不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long paidOrders;

    /**
     * 新访客
     */
    @NotNull(message = "新访客不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long newVisitors;

    /**
     * 曝光量
     */
    @NotNull(message = "曝光量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long exposure;

    /**
     * 订单数量
     */
    @NotNull(message = "订单数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orders;

    /**
     * 订单产品数量
     */
    @NotNull(message = "订单产品数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orderProductNumber;

    /**
     * 创建的买家
     */
    @NotNull(message = "创建的买家不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long createdBuyers;

    /**
     * 退款金额
     */
    @NotNull(message = "退款金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal refundAmount;

    /**
     * 叶子类目名称
     */
    @NotBlank(message = "叶子类目名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cateLeafName;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cateLeafPathName;

    /**
     * 页面浏览量与订单的比例
     */
    @NotNull(message = "页面浏览量与订单的比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal ratioOfPageviewsToOrders;

    /**
     * 转化率
     */
    @NotNull(message = "转化率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal conversionRate;

    /**
     * 每买家的收入
     */
    @NotNull(message = "每买家的收入不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal revenuePerBuyer;

    /**
     * 支付单位价格
     */
    @NotNull(message = "支付单位价格不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal paymentUnitPrice;

    /**
     * 每访客的收入
     */
    @NotNull(message = "每访客的收入不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal revenuePerVisitor;

    /**
     * 乐观锁
     */
    @NotBlank(message = "乐观锁不能为空", groups = { AddGroup.class, EditGroup.class })
    private String revision;


}
